package com.byxy.test;

import com.byxy.dao.AdminRuleDao;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate4.HibernateTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class TreeRecursionTest2 {
    @Autowired
    private AdminRuleDao adminRuleDao;
    @Autowired
    private HibernateTemplate hibernateTemplate;

//    @Test
//    public void main() {
//        List<AdminRule> list = getAdminRuleOne(11);
//        System.out.println(list.size());
//    }

//    public List<AdminRule> getAdminRuleOne(Integer parentId) {
//        String hql = "FROM AdminRule WHERE parent.id = ?";
//        List<AdminRule> rootAdminRule = (List<AdminRule>) hibernateTemplate.find(hql, parentId);
////        List<AdminRule> rootAdminRule = (List<AdminRule>) hibernateTemplate.find(hql);
//        System.out.println(rootAdminRule.size());
////        for (AdminRule e : rootAdminRule) {
////            System.out.println(e);
////        }
//        List<AdminRule> list = new ArrayList<>();
//        for (int i = 0; i < rootAdminRule.size(); i++) {
////            System.out.println(rootAdminRule.get(i).getParentAdminRule());
//            if (rootAdminRule.get(i).getParent() == null) {
//                list.add(rootAdminRule.get(i));
//            }
//        }
//        for (AdminRule e : list) {
//            e.setSub(getSub(e.getId(), rootAdminRule));
//        }
//        return list;
//    }

//    public List<AdminRule> getSub(Integer id, List<AdminRule> root) {
//        List<AdminRule> subList = new ArrayList<>();
//        for (AdminRule e : root) {
////            System.out.println(e.getParentAdminRule());
//            if (e.getParent() != null) {
//                if (id.equals(e.getParent().getId())) {
//                    subList.add(e);
//                }
//            }
//        }
//
//        for (AdminRule e : subList) {
//            if (e.getSub() == null) {
//                e.setSub(getSub(e.getId(), root));
//            }
//        }
//
//        if (subList.size() == 0) {
//            return null;
//        }
//        return subList;
//    }
}
